package flex.cc.uac.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;

import flex.cc.base.dto.LoginAuthDto;
import flex.cc.uac.entity.UacCompanyEntity;
import flex.cc.uac.vo.CompanyTreeVo;

/**
 * 业务机构表
 *
 * @author zhangzk
 * @email zhangzhikai@sinosoft.com.cn
 * @date 2020-09-19 12:49:58
 */
public interface UacCompanyService extends IService<UacCompanyEntity> {
	/**
     * 保存组织
     * @param uacCompany
     * @param loginAuthDto
     */
	public void saveUacCompany(UacCompanyEntity uacCompany, LoginAuthDto loginAuthDto);

    /**
     * 删除组织
     * @param comCode
     * @param loginAuthDto
     */
	public void delUacCompanyByCode(String comCode, LoginAuthDto loginAuthDto);
    
    
	/**
	 * 根据机构获取所有父级及列表
	 * @param comCode
	 * @param level
	 * @param userFlag
	 * @return
	 */
	Map<String, Object> findComPathList(String comCode, String maxLevel, String userFlag, LoginAuthDto loginAuthDto);
	
	/**
     * 根据comCode获得机构vo对象
     * @param comCode
     */
	List<CompanyTreeVo> getCompanyVo(String comCode);
	
    /**
     * 查询所有下级机构
     * @param comCode：当前机构
     * @param level：要展示的机构最高层级
     * @param userFlag：是否考虑用户归属机构
     * @return
     */
    List<CompanyTreeVo> getCompanyTreeVo(String comCode, String maxLevel, String userFlag, LoginAuthDto loginAuthDto);
    
    /**
     * 获取所传机构及其下属机构
     * @param comCode
     */
    List<CompanyTreeVo> getComAndsubComCodeVo(String comCode);
}

